/*
 * soc_script_util.h
 *
 *  Created on: 2019年4月7日
 *      Author: 0yfj0
 */

#ifndef _SOC_SCRIPT_UTILS_H_
#define _SOC_SCRIPT_UTILS_H_
#ifdef __cplusplus
extern "C"
{
#endif  /* __cplusplus */

/*----------------------------------------------------------------------------*/
#include "soc_script_types.h"
char *soc_script_exp_dup(char *buf, int len);
void soc_script_exp_free(char *buf);
soc_script_var_t *soc_script_var_malloc(char *name, soc_script_vtype_t type);
int soc_script_var_append(soc_script_var_t **head, soc_script_var_t *var);
soc_script_var_t *soc_script_var_find(soc_script_var_t *head, char *name);
void soc_script_var_destroy(soc_script_var_t **head);

#include "soc_script_port.h"
//void *soc_script_malloc(uint16_t sz);
#define soc_script_malloc(sz) _soc_script_malloc(sz)
//void soc_script_free(void *buf);
#define soc_script_free(buf) _soc_script_free(buf)

//void soc_script_wait(uint32_t ms);
#define soc_script_wait(ms) _soc_script_wait(ms)
//int soc_script_hhmm(void);
#define soc_script_hhmm() _soc_script_hhmm()

//int soc_script_gpio_get(int n, double *val);
#define soc_script_gpio_get(n,val) _soc_script_gpio_get(n,val)
//int soc_script_analog_get(int n, double *val);
#define soc_script_analog_get(n,val) _soc_script_analog_get(n,val)
//int soc_script_output_get(int n, double *val);
#define soc_script_output_get(n,val) _soc_script_output_get(n,val)
//int soc_script_input_get(int n, double *val);
#define soc_script_input_get(n,val) _soc_script_input_get(n,val)

//int soc_script_gpio_set(int n, double *val);
#define soc_script_gpio_set(n,val) _soc_script_gpio_set(n,val)
//int soc_script_output_set(int n, double *val);
#define soc_script_output_set(n,val) _soc_script_output_set(n,val)

//char *soc_script_trim(char *exp);
#define soc_script_trim(exp) _soc_script_trim(exp)
//int soc_script_strcasecmp(char *s, char *d);
#define soc_script_strcasecmp(s,d) _soc_script_strcasecmp(s,d)
//int soc_script_strncasecmp(char *s, char *d, int n);
#define soc_script_strncasecmp(s,d,n) _soc_script_strncasecmp(s,d,n)
#define soc_script_strncasecmp_s(s,d) _soc_script_strncasecmp(s,d,strlen(s))
//int soc_script_char2bin(char *s, int *bin);
#define soc_script_char2bin(s,bin) _soc_script_char2bin(s,bin)
//int soc_script_char2double(char *s, double *dval);
#define soc_script_char2double(s,dval) _soc_script_char2double(s,dval)

/*----------------------------------------------------------------------------*/

#ifdef __cplusplus
}
#endif  /* __cplusplus */
#endif /* _SOC_SCRIPT_UTILS_H_ */
